package icu.qx.pbs.service.impl;

import java.util.List;

import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
import icu.qx.common.constant.TableNameEnum;
import icu.qx.common.utils.CodeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import icu.qx.pbs.mapper.PbsGroupTypeMapper;
import icu.qx.pbs.domain.PbsGroupType;
import icu.qx.pbs.service.IPbsGroupTypeService;

/**
 * 班组类型Service业务层处理
 *
 * @author yong
 * @date 2024-06-19
 */
@Service
public class PbsGroupTypeServiceImpl implements IPbsGroupTypeService {
    @Autowired
    private PbsGroupTypeMapper pbsGroupTypeMapper;

    @Autowired
    private CodeUtils codeUtils;

    /**
     * 查询班组类型
     *
     * @param groupCode 班组类型主键
     * @return 班组类型
     */
    @Override
    public PbsGroupType selectPbsGroupTypeByGroupCode(String groupCode) {
        return pbsGroupTypeMapper.selectPbsGroupTypeByGroupCode(groupCode);
    }

    /**
     * 查询班组类型列表
     *
     * @param pbsGroupType 班组类型
     * @return 班组类型
     */
    @Override
    public List<PbsGroupType> selectPbsGroupTypeList(PbsGroupType pbsGroupType) {
        return pbsGroupTypeMapper.selectPbsGroupTypeList(pbsGroupType);
    }

    /**
     * 新增班组类型
     *
     * @param pbsGroupType 班组类型
     * @return 结果
     */
    @Override
    public int insertPbsGroupType(PbsGroupType pbsGroupType) {
        pbsGroupType.setCreateBy(SecurityUtils.getUsername());
        pbsGroupType.setCreateTime(DateUtils.getNowDate());
        String code = codeUtils.generateCode(TableNameEnum.PBS_GROUP_TYPE.getTableName());
        pbsGroupType.setGroupCode(code);
        return pbsGroupTypeMapper.insertPbsGroupType(pbsGroupType);
    }

    /**
     * 修改班组类型
     *
     * @param pbsGroupType 班组类型
     * @return 结果
     */
    @Override
    public int updatePbsGroupType(PbsGroupType pbsGroupType) {
        pbsGroupType.setUpdateBy(SecurityUtils.getUsername());
        pbsGroupType.setUpdateTime(DateUtils.getNowDate());
        return pbsGroupTypeMapper.updatePbsGroupType(pbsGroupType);
    }

    /**
     * 批量删除班组类型
     *
     * @param groupCodes 需要删除的班组类型主键
     * @return 结果
     */
    @Override
    public int deletePbsGroupTypeByGroupCodes(String[] groupCodes) {
        return pbsGroupTypeMapper.deletePbsGroupTypeByGroupCodes(groupCodes);
    }

    /**
     * 删除班组类型信息
     *
     * @param groupCode 班组类型主键
     * @return 结果
     */
    @Override
    public int deletePbsGroupTypeByGroupCode(String groupCode) {
        return pbsGroupTypeMapper.deletePbsGroupTypeByGroupCode(groupCode);
    }
}
